Users generate and access a large number of articles, such as emails, web pages, word processing documents, spreadsheet documents, instant messenger messages, presentation documents, multimedia files, and the like using a client device, such as a personal computer, personal digital assistant, mobile phone or the like. Some articles are stored on one or more storage devices coupled to, accessible by, or otherwise associated with the client device(s). Users sometimes wish to search the storage device(s) for articles.
Conventional client-device search applications significantly degrade the performance of the client device. For example, certain conventional client-device search applications typically use batch processing to index all articles, which results in noticeably slower performance of the client device during the batch indexing. Additionally, batch processing occurs only periodically. Therefore, when a user performs a search, the most recently accesses or created articles are sometimes not included in the results. Moreover, if the batch indexing is scheduled for a time when the client device is not turned on, it may not take place for an extended period of time. In that case, the index of articles associated with the client device can become significantly outdated. Conventional client-device search applications can also need to rebuild the index at each batch indexing or build new partial indexes and perform a merge operation that can use a lot of client-device resources.
Conventional client-device search applications also sometimes use a great deal of system resources when operational, resulting in slower performance of the client device.
Additionally, conventional client-device search applications generally require the user to explicitly provide a search query to the search application to generate results, and may be limited to examining file names or the contents of a particular application's files.